'use strict'
  class CardService {
    constructor(rpc_client) {
      this.rpc_client = rpc_client
    }
    /**
    * 上传图片
    * @params imageBase64 上传图片
    * @return
    */
    uploadImage(imageBase64) {
      return this.rpc_client.request("eleme.card.uploadImage", {
        imageBase64: imageBase64,
      })
    }
    /**
    * 创建模板
    * @params templateInfo 模板信息
    * @return
    */
    createTemplate(templateInfo) {
      return this.rpc_client.request("eleme.card.createTemplate", {
        templateInfo: templateInfo,
      })
    }
    /**
    * 查询模板信息
    * @params templateId 模板id列表
    * @return
    */
    mgetTemplateInfo(templateId) {
      return this.rpc_client.request("eleme.card.mgetTemplateInfo", {
        templateId: templateId,
      })
    }
    /**
    * 更新模板信息
    * @params templateId 模板id
    * @params templateInfo 模板更新信息
    * @return
    */
    updateTemplate(templateId, templateInfo) {
      return this.rpc_client.request("eleme.card.updateTemplate", {
        templateId: templateId,
        templateInfo: templateInfo,
      })
    }
    /**
    * 查询模板应用的店铺
    * @params templateId 模板id列表
    * @return
    */
    mgetShopIdsByTemplateIds(templateId) {
      return this.rpc_client.request("eleme.card.mgetShopIdsByTemplateIds", {
        templateId: templateId,
      })
    }
    /**
    * 应用模板
    * @params templateId 模板id
    * @params shopIds 店铺列表
    * @return
    */
    applyTemplate(templateId, shopIds) {
      return this.rpc_client.request("eleme.card.applyTemplate", {
        templateId: templateId,
        shopIds: shopIds,
      })
    }
    /**
    * 开卡
    * @params templateId 模板ID
    * @params cardUserInfo 会员用户信息
    * @params cardAccountInfo 会员账户信息
    * @return
    */
    openCard(templateId, cardUserInfo, cardAccountInfo) {
      return this.rpc_client.request("eleme.card.openCard", {
        templateId: templateId,
        cardUserInfo: cardUserInfo,
        cardAccountInfo: cardAccountInfo,
      })
    }
    /**
    * 更新会员信息
    * @params cardUserInfo 用户基本信息
    * @params cardAccountInfo 用户账户信息
    * @return
    */
    updateUserInfo(cardUserInfo, cardAccountInfo) {
      return this.rpc_client.request("eleme.card.updateUserInfo", {
        cardUserInfo: cardUserInfo,
        cardAccountInfo: cardAccountInfo,
      })
    }
    /**
    * 根据userToken获取用户信息(该接口不再使用)
    * @params userToken userToken有效期10分钟.饿了么app上跳转到外部H5页面https://www.abc.com?accessToken=c8cea843-1fb5-473f-bb10-a9d2aa239c39,其中accessToken为userToken,用其作为该接口的入参获取到用户信息
    * @return
    */
    getUserByToken(userToken) {
      return this.rpc_client.request("eleme.card.getUserByToken", {
        userToken: userToken,
      })
    }
}

module.exports = CardService